package com.etone.smartAudit.vo.certificate;

import com.baomidou.mybatisplus.annotation.TableField;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.NotEmpty;
import java.time.LocalDateTime;
import java.util.List;

@Data
public class CertificateVo {

    @ApiModelProperty(value = "主键id")
    private Integer id;

    @NotEmpty(message = "需求单名称不能为空")
    @ApiModelProperty(value = "需求单名称")
    private String name;

    @NotEmpty(message = "选择关联的项目")
    @ApiModelProperty(value = "关联的项目名称id")
    private Integer itemId;

    @NotEmpty(message = "选择关联的项目")
    @ApiModelProperty(value = "关联的项目名称")
    private String itemName;

    @ApiModelProperty(value = "关联的群组名称")
    private String groupName;

    @NotEmpty(message = "开始时间不能为空")
    private LocalDateTime startTime;

    @NotEmpty(message = "结束时间不能为空")
    private LocalDateTime endTime;

    @ApiModelProperty(value = "发起人姓名")
    private String adminName;


    @ApiModelProperty(value = "最后处理时间")
    private LocalDateTime lastDate;

    @ApiModelProperty(value = "执行人关联id", hidden = true)
    private Integer handPersonId;

    @ApiModelProperty(value = "执行人名称")
    private String handPersonName;

    @ApiModelProperty(value = "执行人电话")
    private String handPersonPhone;

    @ApiModelProperty(value = "执行人邮箱")
    private String handPersonEmail;

    @ApiModelProperty(value = "被审计单位名称 ")
    private String auditposition;

    @ApiModelProperty(value = " 被审计接口人;被审计人接口id ")
    private Integer auditadminid;

    @ApiModelProperty(value = " 被审计接口人姓名")
    private String auditadminName;

    @ApiModelProperty(value = "创建人姓名")
    private String createUserName;

    @ApiModelProperty(value = "创建人电话")
    private String createUserPhone;

    @ApiModelProperty(value = "创建人邮箱")
    private String createUserEmail;

    @ApiModelProperty(value = "群组id ")
    private Integer groupId;

    @ApiModelProperty("创建时间")
    private LocalDateTime createTime;


    @ApiModelProperty(value = "审核人 ")
    private String auditPerson;

    @ApiModelProperty(value = "事务所组长 ")
    private String leaderAdmin;

    @ApiModelProperty(value = "质检员 ")
    private String checkAdmin;


    @ApiModelProperty(value = "执行人是否有操作,0-未有执行操作过，1-有执行人交互操作过")
    private Integer options = 0;

    //-------------------------------

    @ApiModelProperty(value = "问题依据 ")
    @TableField("vcQuestion")
    private String question;

    @ApiModelProperty(value = "内容描述 ")
    @TableField("vcContent")
    private String content;

    @ApiModelProperty(value = "审核人id ")
    @TableField("intAuditPersonId")
    private Integer auditPersonId;

    @ApiModelProperty(value = "事务所组长id ")
    @TableField("intLeaderAdminId")
    private Integer leaderAdminId;

    @ApiModelProperty(value = "质检员id ")
    @TableField("intCheckAdminId")
    private Integer checkAdminId;

    @ApiModelProperty(value = "创建人id ")
    @TableField("intCreateBy")
    private Integer createBy;

    @ApiModelProperty(value = "最后处理人id")
    private Integer lastHandAdminId;

    @ApiModelProperty(value = "最后处理人名称")
    private String lastHandAdmin;

    @ApiModelProperty("审计成员id集合")
    private List<Integer> autditPersons;

    @ApiModelProperty(value = "执行人关联人员信息id")
    private Integer handPersonInfoId;

    @TableField("intState")
    private Integer state;

    @ApiModelProperty("是否可以执行操作（执行人登录才能操作）")
    private Boolean canOption = false;

    @ApiModelProperty(value = "复核人员id")
    @TableField("intRecheckAdminId")
    private Integer recheckAdminId;

    @ApiModelProperty(value = "复核人员名称")
    private String recheckedAdminName;

    @ApiModelProperty(value = "事项涉及专业部门")
    @TableField("vcDepart")
    private String depart;

    @ApiModelProperty(value = "复核日期")
    @TableField("dtRecheckedTime")
    private LocalDateTime recheckedTime;

    @ApiModelProperty(value = "存证单版本号(针对确认单使用) ")
    private Double version;

    @ApiModelProperty(value = "审核状态，0-未审核，1-审核完成,2-未同意")
    private Integer checkStatus = 0;

    @ApiModelProperty(value = "事务所组长电话")
    private String leaderAdminPhone;

    @ApiModelProperty(value = "质检员电话")
    private String checkAdminPhone;


    @ApiModelProperty(value = "发起人姓名电话")
    private String adminNamePhone;

    @ApiModelProperty(value = "被审计接口人电话")
    private String auditadminPhone;

    @ApiModelProperty(value = "最后处理人名称电话")
    private String lastHandAdminPhone;

    @ApiModelProperty(value = "复核人员名称电话")
    private String recheckedAdminPhone;

    @ApiModelProperty(value = "审核人电话号码")
    private String auditPersonPhone;

    @ApiModelProperty(value = "执行人执行状态;需求单：1-已阅，2-同意，3-不同意 4-意见反馈，确认单： 1-【意见反馈】、2-【转派】、3-【退回】,领导【退回给部门经办人】 4-【情况属实，同意】 5-【情况不属实，请审计组核实】 -1，已撤回")
    private Integer handStatus = 0;

    @ApiModelProperty(value = "附件id，多个逗号隔开")
    private String fileIds;


    @ApiModelProperty(value = "抄送人员id，多个逗号隔开")
    private String copySendInfoIds;

    @ApiModelProperty(value = "执行人列表，多个已逗号隔开")
    private String handPersonIds;

    @ApiModelProperty(value = "单类型")
    private Integer type;

}
